package com.liunian.duplication2.hash;

import java.util.HashMap;
import java.util.Map;

public class IsAnagram242 {

    /**
     给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的 字母异位词。

     示例 1:
     输入: s = "anagram", t = "nagaram"
     输出: true

     示例 2:
     输入: s = "rat", t = "car"
     输出: false
     */
    public boolean isAnagram(String s, String t) {
        Map<Character, Integer> map = new HashMap<>();
        char[] sChars = s.toCharArray();
        for (char sChar : sChars) {
            map.put(sChar, map.getOrDefault(sChar, 0) + 1);
        }
        char[] tChars = t.toCharArray();
        for (char tChar : tChars) {
            if (map.getOrDefault(tChar, 0) < 1) {
                return false;
            }
            map.put(tChar, map.getOrDefault(tChar, 0) - 1);
        }
        for (Map.Entry<Character, Integer> entry : map.entrySet()) {
            if (entry.getValue() != 0) {
                return false;
            }
        }
        return true;
    }

}
